/*
 * rx11_functions.h
 * Created on August 5, 2005; 6:13 PM
 * by vramadurai
 */
#ifndef _RX11_FUNCTIONS_H_
#define _RX11_FUNCTIONS_H_

#include "HsTypes.h"

hs_uint8_t cck_11mbps (
                    hs_int16_t  * restrict asIBuf,
                    hs_int16_t  * restrict asQBuf,
                    hs_int16_t  * restrict psFullRateCckSeqI,
                    hs_int16_t  * restrict psFullRateCckSeqQ,
                    hs_uint8_t  * pucMapTable,
                    hs_uint8_t  * puc11MbpsByteTranslate,
                    hs_int16_t  * ssRxSymbI,
                    hs_int16_t  * ssRxSymbQ
                );

hs_uint8_t carrier_offset_11mbps(
                                hs_int16_t ssRxSymbI,
                                hs_int16_t ssRxSymbQ,
                                struct HS_Phy11bStr  *HS_Phy11bPtrTh,
                                hs_uint8_t  ucCckBits,
                                hs_uint32_t flip_flag
                              );

hs_uint8_t descramble_11mbps(
                        hs_uint8_t ucBit,
                        hs_uint8_t ucTempBit,
                        hs_uint8_t * pucStateTable4Bit,
                        struct HS_Phy11bStr  *HS_Phy11bPtrTh,
                        hs_int32_t byteCount
                      );

void crc_8bit(
                hs_uint8_t ucDemodBitSeq,
                hs_uint32_t * piCrc32Table,
                struct HS_Phy11bStr  *HS_Phy11bPtrTh
             );


void wlan_do_11mbps(
                        struct HS_Phy11bStr  *HS_Phy11bPtrTh,
                        ePHYSTATES_TH *ePhyState,
                        hs_int32_t NSymbols,
						hs_int16_t *ssSineCosineTable
                    );

#endif
